const arr = [
  {
    id: 1,
    name: '部门1',
    // pid: 0,
    children: [
      {
        id: 2,
        name: '部门2',
        // pid: 1,
        children: [
          {
            id: 6,
            name: '部门6',
            children: [
              {
                id: 7,
                name: '部门7',
                children: [],
              },
            ],
          },
        ],
      },
      {
        id: 3,
        name: '部门3',
        // pid: 1,
        children: [
          {
            id: 4,
            name: '部门4',
            // pid: 3,
            children: [
              {
                id: 8,
                name: '部门9',
                children: [],
              },
            ],
          },
        ],
      },
    ],
  },
  {
    id: 2,
    name: '部门5',
    children: [],
  },
];

// let result = [];
// let num = 0;
// function myFlat(arr) {
//   num++;
//   arr.forEach((item) => {
//     if (item.children?.length) {
//       const children = item.children;
//       delete item.children;
//       result.push(item);
//       myFlat(children);
//     } else {
//       delete item.children;
//       result.push(item);
//     }
//   });
// }
let result = [];
let num = 1;
// function myFlat(arr) {
//   arr.forEach((item) => {
//     result.push(item);
//     if (item.children?.length) {
//       num++;
//       myFlat(item.children);
//     }
//   });
// }
//
// const getArrayDepth = (arr) => {
//   if (Array.isArray(arr)) {
//     const depth = 1 + Math.max(...arr.map(getArrayDepth));
//     console.log(depth, 'aaaaaaaa');
//     return depth;
//   }
//   if (arr.children?.length) {
//     const depth = 1 + Math.max(...arr.children.map(getArrayDepth));
//     console.log(depth, 'bbbbbbbb');
//     return depth;
//   }
//   return 0;
// };
// const depth = getArrayDepth(arr);
// console.log(depth);

// 树的数据结构
const node = [
  {
    title: 'name-1',
    children: [
      {
        title: 'name-1-1',
        children: [
          {
            title: 'name-1-1-1',
          },
        ],
      },
    ],
  },
  {
    title: 'age',
  },
];

// 获取树的广度
function handleGetTreeExtent(node) {
  let extend = 0;
  node.forEach((item) => {
    if (item.children) {
      extend += handleGetTreeExtent(item.children);
    } else {
      extend += 1;
    }
  });
  return extend;
}

// 获取树的深度
function handleGetTreeDeep(arr) {
  let deep = 0;
  arr.forEach((item) => {
    if (item.children) {
      deep = Math.max(deep, handleGetTreeDeep(item.children) + 1);
    } else {
      deep = Math.max(deep, 1);
    }
  });
  return deep;
}
console.log(handleGetTreeDeep(arr));
// let len = 0,
//   id = null;
// const a = Math.max(
//   ...arr.map((arr) => {
//     console.log(arr);
//   }),
// );
// console.log(a);

// const fn = (obj, num) => {
//   const theLen = num + 1;
//   if (obj.children?.length) {
//     obj.children.forEach((item) => {
//       fn(item, theLen);
//     });
//   } else {
//     if (theLen > len) {
//       len = theLen;
//       id = obj.id;
//     }
//   }
// };

// arr.forEach((item) => {
//   fn(item, 0);
// });
// console.log(len, id);
